////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ

// Процедура - обаботчик события "Нажатие" в: Кнопка "ОК"
//
&НаКлиенте
Процедура ОКНажатие(Команда)
	Закрыть(Элементы.СписокНастроек.ТекущиеДанные);
КонецПроцедуры

// Процедура - обаботчик события "Нажатие" в: Кнопка "Отмена"
//
&НаКлиенте
Процедура ОтменаНажатие(Команда)
	Закрыть();
КонецПроцедуры

// Процедура - обаботчик события "Нажатие" в: Кнопка "Удалить"
//
&НаКлиенте
Процедура УдалитьНажатие(Команда)

	ТекущиеДанные = Элементы.СписокНастроек.ТекущиеДанные;
	Если ТекущиеДанные = Неопределено Тогда
		Возврат;
	КонецЕсли;

	Если СоздавалиНовуюСтроку И ТекущиеДанные = СписокНастроек[СписокНастроек.Количество() - 1] Тогда
		СоздавалиНовуюСтроку = Ложь;
	КонецЕсли;

	Если СписокНастроек.Количество() = 1 Тогда
		СоздавалиНовуюСтроку = Истина;
		ТекущиеДанные.Представление = "";
		ТекущиеДанные.Пометка = Ложь;
	Иначе
		СписокНастроек.Удалить(ТекущиеДанные);
	КонецЕсли;

КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Если СписокНастроек.Количество() = 0 Тогда
		ТекущиеДанные = СписокНастроек.Добавить();
		ТекущиеДанные.Представление = "Основная";
		ТекущиеДанные.Значение = "Новая";
		СоздавалиНовуюСтроку = Истина;
	Иначе
		СоздавалиНовуюСтроку = Ложь;
		ТекущиеДанные = СписокНастроек[0];
	КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура НаименованиеНастройкиОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
	Нашли = Ложь;

	Для Каждого ТекущиеДанные Из СписокНастроек Цикл
		Если ТекущиеДанные.Представление = Текст Тогда
			Нашли = Истина;
			Прервать;
		КонецЕсли;
	КонецЦикла;

	Если Не Нашли Тогда

		Если Не СоздавалиНовуюСтроку Тогда
			ТекущиеДанные = СписокНастроек.Добавить();
			СоздавалиНовуюСтроку = Истина;
		Иначе
			ТекущиеДанные = СписокНастроек[СписокНастроек.Количество() - 1];
		КонецЕсли;

		ТекущиеДанные.Представление = Текст;
	КонецЕсли;

	Элементы.СписокНастроек.ТекущаяСтрока = ТекущиеДанные;
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьПриОткрытииПриИзменении(Элемент)
	ТекущиеДанные = Элементы.СписокНастроек.ТекущиеДанные;
	Если ТекущиеДанные.Пометка Тогда
		Для Каждого ЭлементСписка Из СписокНастроек Цикл
			Если ЭлементСписка.Пометка И Не ЭлементСписка = ТекущиеДанные Тогда
				ЭлементСписка.Пометка = Ложь;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура СписокНастроекПометкаПриИзменении(Элемент)
	ТекущиеДанные = Элементы.СписокНастроек.ТекущиеДанные;
	Если ТекущиеДанные.Пометка Тогда
		Для Каждого ЭлементСписка Из СписокНастроек Цикл
			Если ЭлементСписка.Пометка И Не ЭлементСписка = ТекущиеДанные Тогда
				ЭлементСписка.Пометка = Ложь;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры